如何拆分含有多个分隔符的字符串?

您所在的位置:网站首页 abcdefg hi jkl mn大小写 如何拆分含有多个分隔符的字符串?

如何拆分含有多个分隔符的字符串?

2023-07-12 21:45| 来源: 网络整理| 查看: 265

需求: 我们要把某个字符串按照分隔符号拆分成不同的字段,该字符串包含多种不同的分隔符,例如: s = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz' 其中,,,都是分隔符如何处理?

思路: 1、方法一:连续使用str的split方法,每次处理一种分隔符 2、方法二:使用正则表达式的re.split()方法

代码:

# 方法一: In [24]: def my_split(s,seps): ...: res = [s] ...: for sep in seps: ...: t = [] ...: map(lambda ss: t.extend(ss.split(sep)),res) # 将二维列表合并成一维列表,t.extend方法和sum方法 ...: res = t ...: return res ...: ...: In [25]: s Out[25]: 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz' In [26]: my_split(s,',;|/t') Out[26]: ['ab', 'cd', 'efg', 'hi', 'jkl', 'mn\topq', 'rs', '', 'uvw\txyz'] In [27]: my_split(s,',;|\t') Out[27]: ['ab', 'cd', 'efg', 'hi', 'jkl', 'mn', 'opq', 'rst', 'uvw', 'xyz'] In [28]: from functools import reduce In [29]: reduce(lambda l,sep:sum(map(lambda ss: ss.split(sep),l),[]),',;|\t',[s]) Out[29]: ['ab', 'cd', 'efg', 'hi', 'jkl', 'mn', 'opq', 'rst', 'uvw', 'xyz'] In [32]: my_split2 = lambda s,seps:reduce(lambda l,sep:sum(map(lambda ss: ss.split(sep),l),[]),seps,[s]) In [33]: my_split2(s,',;|\t') Out[33]: ['ab', 'cd', 'efg', 'hi', 'jkl', 'mn', 'opq', 'rst', 'uvw', 'xyz'] 方法二: In [34]: import re In [35]: s Out[35]: 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz' In [36]: re.split('[,;|\t]+',s) Out[36]: ['ab', 'cd', 'efg', 'hi', 'jkl', 'mn', 'opq', 'rst', 'uvw', 'xyz']


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3